Internet Protocol (IP)-based video delivery is becoming increasingly popular. A client may request IP-based video from a streaming server. The client is the viewing device used by a customer of a service provider to watch video over the IP network and may be a television, computer, mobile device, or other device suitable for watching IP-based video. The client may be connected to the streaming server via the service provider through, for example, a cable modem at a customer's home network.
Typically, there are two conventional systems for delivering IP-based video: “over the top” delivery systems and quality of service (QoS)-based delivery systems. In an “over the top” delivery system, content is provided by a content delivery network (CDN) as IP-based video and transmitted from the CDN over a managed network provided by a network provider. Video delivery in an “over the top” delivery system is best effort; in other words, there is no quality of service guarantee for the video. In QoS-based delivery systems, however, a network provider provides content from its managed network with certain guarantees (e.g., dedicated bandwidth).
In typical “over the top” delivery systems, a client requests video from a streaming server or array of streaming servers in a content delivery network (CDN). The CDN stores video files for the video content. The video may be a video file or it may be a video stream (e.g., broadcast television). In operation, a client requests the video data which is transmitted by the streaming server to the client. The client decodes the video and displays it to the viewer.
However, at times when network bandwidth available for video delivery decreases, possibly due to network congestion, the video delivered to the client may get delayed or lost. This can lead to macro blocking, lost video frames, dropped audio, misaligned audio and video, unintentional pauses, and possibly other undesirable effects on the viewing experience.